Bar code symbologies are widely used for data collection. The first bar code symbologies developed, such as UPC, EAN, Code 39, and Code 93 can be referred to as "linear" symbologies because data in a given symbol was decoded along one direction or axis. The next generation of bar-code symbologies called stacked symbologies, such as Code 49 and PDF 417, increased the information density of the symbol by employing several adjacent rows, each row having several characters defined by groups of multiple width bars and spaces. A recently developed symbology, Code One, is a two-dimensional matrix symbology. As shown by a symbol 200 of FIG. 1, Code One symbols include a center recognition pattern 202 surrounded by a matrix of square data cells 209. The Code One symbology includes several versions, each version having a predetermined size and a unique type of center recognition pattern 202.
The recognition pattern 202, which is comprised of a plurality of elements such as bars 204 and spaces 207, is scanned by a two-dimensional imaging device and found by a fast linear image search used for high speed scanning applications. The recognition pattern is used to identify the version (i.e., the type) of Code One symbol being used; however, the recognition pattern is also used to determine an X-dimension of the Code One symbol. The X-dimension is the nominal (or intended) width dimension of the bars 204, spaces 207 or data cells 209 in a symbology, as shown in FIG. 1. For Code One in particular, the X-dimension represents the smallest height (or width) of the data cells 209 in a given symbol. Thus, the X-dimension is used to determine the intended dimension that the area symbology is based on, regardless of priming errors, and is necessary for decoding the symbology.
In the prior art, when examining an unknown symbol, it was common to measure and compute the average size of the data cell 209 by using two sets of parallel scan lines, where the parallel scan lines of one set were approximately perpendicular to the parallel scan lines in the other set. At least one of the sets of scan lines would intersect the recognition pattern in such a way as to identify each horizontal bar and space in the recognition pattern 202. The estimated X-dimension, also known as the Z dimension (Z), was conventionally determined by dividing the pitch p, which is the measurement from a top of a lowest recognition pattern bar 203 to a top of an uppermost recognition pattern bar 205, by a number of elements within the pitch measurement. For example, if the pitch P of the recognition pattern 202 is 9 mm and there are nine elements, i.e., five bars and four spaces, then the Z dimension is 9 mm.div.9=1 mm. The next step consisted of confirming that for all edge-to-edge measurements t, which includes a bar and a space, the equation 1.5.ltoreq.t/Z&lt;2.5 was true. The average bar width was calculated by dividing the sum of the bar widths by the number of bars, then verifying that: 0.5Z.ltoreq.Avg. bar width &lt;1.5Z; if not, then the pattern was found to be in error and a new scan of the recognition pattern 202 was made. Thus, for the last example, the average bar width must fall between 0.5 mm and 1.5 mm, otherwise a new scan would be made.
Although the prior art method of determining the X-dimension worked when the Code One symbol was in its proper position relative to a scanning device (i.e., aligned), the method did not provide for misalignments due to curvature 206 of the pattern 202, as shown in FIG. 2A, or unknown orientation of the pattern 202, as shown in FIG. 2B. Further, the prior art method was prone to errors due to interruptions 208 and 210 in the pattern 202, as shown in FIG. 2C.